package com.atguigu.oss.utils;


import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component  // spring注
//@ConfigurationProperties
// 当项目启动后 spring加载后 执行接口一个方法
// 一定要实现我们的InitializingBean的接口 这样初始化的手才能读取
public class ConstantPropertiesUtils implements InitializingBean {

    // 这个就是我们yaml里面的完整哪一个
    // 这个Value就是我们读取yml的配置
    @Value("${aliyun.oss.file.endpoint}")
    private String endpoint;

    // 这个只是告诉你们这样写的话能最好的解耦

    @Value("${aliyun.oss.file.keyid}")
    private String keyId;

    @Value("${aliyun.oss.file.keysecret}")
    private String keysecret;

    @Value("${aliyun.oss.file.bucketname}")
    private String bucketname;

    // 定义公开静态常量
    public static String END_POINT;
    public static String KEY_ID;
    public static String KEY_SECRET;
    public static String BUCKET_NAME;

    // 使用枚举的形式 但是不完全是枚举
    @Override
    public void afterPropertiesSet() throws Exception {
        END_POINT = endpoint;
        KEY_ID = keyId;
        KEY_SECRET = keysecret;
        BUCKET_NAME = bucketname;
    }
}
